package main

import (
	"fmt"
	"reflect"
)

func main() {
	a := [5]int{1, 1, 1, 1, 1}
	fmt.Println(a)

	changeFun(a)
	fmt.Println(a)

	changeFun_ByPointer(&a)
	fmt.Println(a)

}

//这里的a还是指针类型
func changeFun_ByPointer(a *[5]int) {
	fmt.Println(reflect.TypeOf(a))
	(*a)[0] = 2
	fmt.Println(*a)

}

//数组参数和其他类型数据做参数一样,是copy数据到函数体内,要直接改变要用指针
func changeFun(a [5]int) {
	a[0] = 2;
	fmt.Println(a)
}
